package com.liuhaozzu.remoteprocess;

/**
 *Bytes数组处理工具
 */
public class ByteUtils {

	/**
	 * @param classByte
	 * @param offset
	 * @param u1
	 * @return
	 */
	public static int bytes2Int(byte[] b, int start, int len) {
		int sum=0;
		int end=start+len;
		for (int i=start;i<end;i++){
			int n=((int)b[i])&0xff;
			n<<=(--len)*8;
			sum+=n;
		}
		return sum;
	}

	/**
	 * @param classByte
	 * @param offset
	 * @param len
	 * @return
	 */
	public static String bytes2String(byte[] b, int start, int len) {
		return new String(b, start, len);
	}

	/**
	 * @param newStr
	 * @return
	 */
	public static byte[] string2Btyes(String str) {
		return str.getBytes();
	}

	/**
	 * @param length
	 * @param u2
	 * @return
	 */
	public static byte[] int2Bytes(int value, int len) {
		byte[] b=new byte[len];
		for(int i=0;i<len;i++){
			b[len-i-1]=(byte)((value>>8*i)&0xff);
		}
		return b;
	}

	/**
	 * @param classByte
	 * @param offset
	 * @param len
	 * @param strBytes
	 * @return
	 */
	public static byte[] bytesReplace(byte[] originalBytes, int offset, int len,
			byte[] replaceBytes) {
		byte[] newBytes=new byte[originalBytes.length+(replaceBytes.length-len)];
		System.arraycopy(originalBytes, 0, newBytes, 0, offset);
		System.arraycopy(replaceBytes, 0, newBytes, offset, replaceBytes.length);
		System.arraycopy(originalBytes, offset+len, newBytes, offset+replaceBytes.length, originalBytes.length-offset-len);
		
		return newBytes;
	}

}
